
function Vue(config={}){
	const {el,data={},methods={}} = config;
	this.$el = el;
	this.$data = data;
	if(typeof el === "string"){
		this.$el = document.querySelector(el);
	}
	// 对数据进行侦听（观察）
	this.observe();
	// 解析模板
	this.compile();
}

Object.assign(Vue.prototype,{
	observe(){
		for(let key in this.$data){
			Object.defineProperty(this,key,{
				get(){
					return this.$data[key];
				},
				set(v){
					this.$data[key] = v;
				}
			})
		}
	},
	// 解析模板
	compile(){
		for(let i=0;i<this.$el.children.length;i++){
			// 获取节点
			const node = this.$el.children[i];
			// 判断有没有使用指令v-model
			if(node.hasAttribute("v-model")){
				// 1- 增加了input事件
				node.addEventListener("input",function(e){
					console.log(e.target.value)
				})
				const value = node.getAttribute("v-model");
				// 2- 绑定了数据
				node.value = this[value];
			}
			// 判断node是否拥有指令v-html
			if(node.hasAttribute("v-html")){
				const value = node.getAttribute("v-html");
				node.innerHTML = this[value];
			}
			// 判断node是否拥有指令v-text
			if(node.hasAttribute("v-text")){
				const value = node.getAttribute("v-text");
				node.innerText = this[value];
			}
		}
	}
})
export default Vue;